<?php

require_once 'Class.PhpMailer.php';
include_once 'Class.Sessao.php';

/**
 * Classe responsavel em enviar email quando ocorrer algum erro de exceção
 */
class Excecao {

    /**
     * Método __construct() responsavel em receber objeto contendo descrição do erro.
     *
     * @param objeto $e Deve receber a exeção gerada
     * @example catch(PDOException $e)
     */
    function __construct($e) {
        /*
          echo $e->getCode();             // retorna o codigo do erro
          echo $e->getFile();             // retorna o arquivo q ocorreu o erro
          echo $e->getLine();             // retorna a linha q ocorreu o erro
          echo $e->getMessage();          // retorna a mensagem de erro
          echo $e->getTrace();            // retorna um array com as açoes ate o erro
          echo $e->getTraceAsString();    // retorna as açoes em forma de string
         */
        $objSessao = new Sessao();
        if ($_SERVER['HTTP_HOST'] == 'localhost' || $_SERVER['HTTP_HOST'] == 'sigevent.dev' || $_SERVER['HTTP_HOST'] == 'sigevent.app') {
            $mensagem = "<b>Numero do erro:     </b> " . $e->getCode() . ";\n\n";
            $mensagem .= "<b>Arquivo:           </b> " . $e->getFile() . ";\n\n";
            $mensagem .= "<b>Linha:             </b> " . $e->getLine() . ";\n\n";
            $mensagem .= "<b>Mensagem:          </b> " . $e->getMessage() . ";\n\n";
            $mensagem .= "<b>Acoes ate o erro   </b><pre> " . $e->getTraceAsString() . "</pre>;\n\n";
            print_r($mensagem);
            exit;
        } else {
            $mensagem = "<b>Numero do erro:     </b> " . $e->getCode() . ";<br /><br />";
            $mensagem .= "<b>Arquivo:           </b> " . $e->getFile() . ";<br /><br />";
            $mensagem .= "<b>Linha:             </b> " . $e->getLine() . ";<br /><br />";
            $mensagem .= "<b>Mensagem:          </b> " . $e->getMessage() . ";<br /><br />";
            $mensagem .= "<b>Cliente            </b>:" . $objSessao->getClienteUrl() . ";<br /><br />";
            $mensagem .= "<b>Acoes ate o erro   </b><pre> " . $e->getTraceAsString() . "</pre>;<br /><br />";
            print_r($mensagem);
        }

//        $mail = new EnviarEmail();
//        $mail->FromName = "Sistema";
//        $mail->AddAddress("rogerio.lamarques@bcsautomacao.com.br");
//        $mail->Subject = "Erro Sistema (Usuário: " . $objSessao->getValor('sessao_id_usuario') . ")";
//        $mail->Body = $mensagem;
//        $mail->Send();
//        $mail->SmtpClose();
    }

}